# IP数据包解析程序 Makefile

.PHONY: build clean run test help

# 程序名称
BINARY_NAME=ipparse
BUILD_DIR=.
SOURCE_DIR=./cmd/ipparse

# 默认目标
all: build

# 编译程序
build:
	@echo "编译IP数据包解析程序..."
	go build -o $(BUILD_DIR)/$(BINARY_NAME) $(SOURCE_DIR)
	@echo "编译完成: $(BUILD_DIR)/$(BINARY_NAME)"

# 清理生成的文件
clean:
	@echo "清理生成的文件..."
	rm -f $(BUILD_DIR)/$(BINARY_NAME)
	rm -f *.log
	@echo "清理完成"

# 运行程序（需要root权限）
run: build
	@echo "注意: 此程序需要root权限才能捕获网络数据包"
	@echo "使用方法: sudo ./$(BINARY_NAME) <logfile>"
	@echo "示例: sudo ./$(BINARY_NAME) output.log"

# 测试编译
test:
	@echo "测试编译..."
	go build -o /tmp/$(BINARY_NAME)_test $(SOURCE_DIR)
	@echo "编译测试通过"
	rm -f /tmp/$(BINARY_NAME)_test

# 格式化代码
fmt:
	@echo "格式化代码..."
	go fmt ./...

# 代码检查
vet:
	@echo "代码静态检查..."
	go vet ./...

# 显示帮助信息
help:
	@echo "IP数据包解析程序 - 可用命令:"
	@echo "  build    - 编译程序"
	@echo "  clean    - 清理生成的文件"
	@echo "  run      - 显示运行说明"
	@echo "  test     - 测试编译"
	@echo "  fmt      - 格式化代码"
	@echo "  vet      - 代码静态检查"
	@echo "  help     - 显示此帮助信息"
	@echo ""
	@echo "使用示例:"
	@echo "  make build          # 编译程序"
	@echo "  sudo ./ipparse output.log  # 运行程序（需要root权限）"

# 安装依赖
deps:
	@echo "检查依赖..."
	go mod tidy
	go mod download
